/*
 * Copyright (c) 2009, Maxim Taran. All Rights Reserved.
 */

package max.utils;

import java.io.*;

/**
 * User: Max
 * Date: 03.06.2009
 * Time: 18:53:48
 * @author Максим Таран
 */
public class CodepageForConsole extends PrintStream {
    private static String consoleencoding = System.getProperty("file.encoding", "Cp866");

    public CodepageForConsole(OutputStream out) {
        super(out);
    }

    public CodepageForConsole(OutputStream out, boolean autoFlush) {
        super(out, autoFlush);
    }

    public CodepageForConsole(OutputStream out, boolean autoFlush, String encoding) throws UnsupportedEncodingException {
        super(out, autoFlush, encoding);
    }

    @Override
    public void println(String x) {
        super.println(convert(x));
    }

    @Override
    public void print(String s) {
        super.print(convert(s));
    }

    /**
     * Метод для конвертации строки в заданную кодировку.
     * @param mes Строка, которую небходимо преобразовать.
     * @return Возвращает строку в необходимой кодировке.
     */
    private String convert(String mes) {
        try {
            byte[] temp = mes.getBytes();
            mes = new String(temp, consoleencoding);
        } catch (UnsupportedEncodingException e) {
            return e.getMessage();
        }
        return mes;
    }

}
